package io.easyspring.common.generator.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

/**
 * 生成器的数据库配置
 *
 * @author summer
 * @version V1.0.0-RELEASE
 * DateTime 2019-05-11 18:43
 */
public class GeneratorDataSourceConfig {

    /** 连接地址 */
    public static final String HOST_URL = "jdbc:mysql://47.96.126.38:3306/risk_management?useUnicode=true&characterEncoding=utf-8";
    /** 驱动器 */
    public static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
    /** 用户名 */
    public static final String USERNAME = "root";
    /** 密码 */
    public static final String PASSWORD = "YinbaOWang";

    /**
     * 生成器的数据库配置
     *
     * @param hostUrl 数据库连接地址
     * @param driverName 驱动名称
     * @param username 用户名
     * @param password 密码
     * @return com.baomidou.mybatisplus.generator.config.DataSourceConfig
     * Author summer
     * Version V1.0.0-RELEASE
     * DateTime 2019-05-11 18:45
     */
    public static DataSourceConfig dataSourceConfig(String hostUrl, String driverName, String username, String password){
        DataSourceConfig dataSourceConfig = new DataSourceConfig();

        /*
         * 数据库信息查询类
         * 默认由 dbType 类型决定选择对应数据库内置实现
         * 实现 IDbQuery 接口自定义数据库查询 SQL 语句 定制化返回自己需要的内容
         */
        // dataSourceConfig.setDbQuery();
        // 数据库类型
        dataSourceConfig.setDbType(DbType.MYSQL);
        /*
         * 数据库 schema name
         * 例如 PostgreSQL 可指定为 public
         */
        // dataSourceConfig.setSchemaName(null);
        /*
         * 类型转换
         * 默认由 dbType 类型决定选择对应数据库内置实现
         * 实现 ITypeConvert 接口自定义数据库 字段类型 转换为自己需要的 java 类型，
         * 内置转换类型无法满足可实现 IColumnType 接口自定义
         */
//        dataSourceConfig.setTypeConvert(new MySqlTypeConvert(){
//            // 自定义数据库表字段类型转换【可选】
//            @Override
//            public DbColumnType processTypeConvert(String fieldType) {
//                // 注意！！processTypeConvert 存在默认类型转换，如果不是你要的效果请自定义返回、非如下直接返回。
//                return super.processTypeConvert(fieldType);
//            }
//        });
        // 驱动连接的URL
        dataSourceConfig.setUrl(hostUrl);
        // 驱动名称
        dataSourceConfig.setDriverName(driverName);
        // 数据库连接用户名
        dataSourceConfig.setUsername(username);
        // 数据库连接密码
        dataSourceConfig.setPassword(password);

        return dataSourceConfig;
    }
}
